#位置实参
# 注意：数据的顺序不可调换！
def describe_num(num_type, num_value) :
    print("This number is " + num_value + ".")
    print("The type is " + num_type + ".")

describe_num('int', '49')
describe_num('float', '56.9')                 # 可根据需要多次调用函数。

#关键字实参
print("")
describe_num(num_type='int',num_value='49')   # 向指定名称传递信息。

#函数的默认值
print("")
def sing(name,further='favorite') :
    print("I like the " + name + ". It's my " + further + " song.")

sing('《Demons》')

#返回值

#返回简单值
print("\n返回简单值实例：")
def name(first_name, last_name) :
    full_name = last_name + "" + first_name
    return full_name.title()

scientist = name('振宁','杨')    # 用于储存调用返回值的函数运行时，所传递的返回值。
print(scientist)

#让实参变为可选的
"""
def name(first_name, last_name, middle_name='') :  # 给middle_name设置一个空字符串作为默认值。
    if middle_name:                                # 若middle_name为空值，则不使用此形参。
        full_name = last_name + middle_name + first_name
    else:
        full_name = last_name + "" + first_name
    return full_name.title()
"""

#返回字典 
print("")
def build_person(first_name, last_name) :
    person = {'first': first_name, 'last': last_name}   # 将函数所接受的值封装到字典中。
    return person

musician = build_person('路德维希', '贝多芬')
print(musician)

#结合while循环的应用
print("")
def get_name(first_name, last_name) :
    full_name = first_name + last_name
    return full_name.title()

active = True
while active :
    print("顾客的名字是？")
    first = input("请输入你的姓氏：")
    last = input("请输入你的名字：")

    print_name = get_name(first, last)
    print("你好！" + print_name + " 先生/小姐！祝你用餐愉快！")
    
    active_control = input("还有其他顾客吗？")
    if active_control == '退出' :
        active = False
    else :
        continue    # 忽略continue以下的代码。